import { get, download, post } from '@/service/request'

export function getPage(data: MixingPageQuery) {
  return get<PageDataResponse<Data>>('lxdd/mixingStation/page.html', data)
}

export function exportPage(data: MixingPageQuery) {
  return download({ url: 'lxdd/mixingStation/page.html', data: { ...data, export: true } })
}

// 删除
export function remove(id: string) {
  return post('lxdd/mixingStation/delete.html', { id })
}

// 添加
export function add(params: Form) {
  return post('lxdd/mixingStation/add.html', params)
}

// 编辑
export function update(params: Form) {
  return post('lxdd/mixingStation/edit.html', params)
}

// 获取出货关联组织
export function getOrganList(searchKeyword: string) {
  return get<OrganizationData[]>('lxdd/shipmentOrganization/obtainOrganizationData.html', { searchKeyword })
}

// --------------- 围栏相关 -------------------
// 围栏列表查询
export function getRailList(data: RailListQuery) {
  return get<RailRowData[]>('lxdd/rail/retrievalRails.html', data)
}

// 添加围栏
export function addRail(data: any) {
  return post('lxdd/rail/draw.html', data)
}

// 编辑围栏
export function editRail(data: any) {
  return post('lxdd/rail/edit.html', data)
}

// 删除围栏
export function deleteRail(id: string) {
  return post('lxdd/rail/delete.html', { id })
}

// 更改围栏状态
export function updateRailStatus(id) {
  return post('lxdd/rail/changeStatus.html', { id })
}

// 行政区域信息表-行政区域树
export function getDistrictTree() {
  return get('/upms/area/tree', {})
}

export interface MixingPageQuery extends PageQuery {
  name?: string
  setRailMark?: string
  timeType?: 1 | 2 | 3
  startTime?: string
  endTime?: string
}

/** 列表对象 */
export interface Data {
  /** ID */
  id?: string
  /** 搅拌站名称 */
  name?: string
  /** 搅拌站编号 */
  number?: string
  /** 关联组织 */
  relatedOrganizationName?: string
  /** 地址 */
  address?: string
  /** 是否设置围栏[0-否, 1-是] */
  setRailMark?: number
  /** 生产线数量 */
  productLinesNumber?: string
  /** 更新人 */
  updateBy?: string
  /** 更新时间 */
  updateTime?: Date
  /** 创建人 */
  createBy?: string
  /** 创建时间 */
  createTime?: Date
}

/** 关联组织下拉列表对象 */
export interface OrganizationData {
  /** ID */
  id?: string
  /** 名称 */
  name?: string
  /** 编号 */
  code?: string
  /** ERP业务实体ID */
  erpOrgId?: string
  /** ERP基地组织名称 */
  erpOrgName?: string
}

export interface Form {
  /** ID */
  id?: string
  /** 搅拌站名称 */
  name?: string
  /** 关联组织 */
  relatedOrganizationName?: string
  /** 关联组织ID */
  relatedOrganizationId?: string
  /** 关联组织编号 */
  relatedOrganizationCode?: string
  /** 地址 */
  address?: string
  /** 生产线数量 */
  productLinesNumber?: string
  /** ERP业务实体ID */
  erpOrgId?: string
  /** ERP基地组织名称 */
  erpOrgName?: string
}

export interface RailListQuery {
  /** 围栏所属业务[0-搅拌站围栏, 1-客户围栏] */
  belongToBusinessType?: 0 | 1
  /** 关联ID */
  relationId?: string
  /** 关联业务编号 */
  businessNumber?: string
  /** 模糊匹配关键字 */
  searchKeyword?: string
}

export interface RailRowData {
  /** ID */
  id?: string
  /** 围栏地址 */
  address?: string
  /** 围栏所属业务[0-搅拌站围栏, 1-客户围栏] */
  belongToBusinessType?: string
  /** 删除标记[0-未删除, 1-已删除] */
  deleteMark?: string
  /** 标注点纬度 */
  lat?: number
  /** 标注点经度 */
  lng?: number
  /** 半径 */
  radius?: string
  /** 围栏数据 */
  railData?: string
  /** 围栏状态[0-已生效, 1-未生效] */
  railStatus?: string
  /** 围栏类型[0-自定义, 1-行政区域] */
  railType?: 0 | 1
  /** 关联ID */
  relationId?: string
  /** 关联编号 */
  relationNumber?: string
  /** 围栏形状[0-圆形, 1-矩形, 2-多边形] */
  shapeType?: 0 | 1 | 2
  /** 更新人 */
  updateBy?: string
  /** 更新时间 */
  updateTime?: string
}

export interface RailForm {
  /** ID */
  id?: string
  /** 围栏地址 */
  address?: string
  /** 围栏所属业务[0-搅拌站围栏, 1-客户围栏] */
  belongToBusinessType?: 0 | 1
  /** 标注点纬度 */
  lat?: number
  /** 标注点经度 */
  lng?: number
  /** 半径 */
  radius?: number
  /** 围栏数据 */
  railData?: any[]
  /** 围栏类型[0-自定义, 1-行政区域] */
  railType?: 0 | 1
  /** 关联ID */
  relationId?: string
  /** 关联编号 */
  relationNumber?: string
  /** 围栏形状[0-圆形, 1-矩形, 2-多边形] */
  shapeType?: 0 | 1 | 2
  /** 围栏区域编码 */
  codes?: string
}
